package io.renren.socket;

import com.alibaba.fastjson.JSONObject;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelFuture;
import io.renren.common.utils.Constant;
import io.renren.common.utils.StringUtils;
import org.apache.commons.lang.StringEscapeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.text.SimpleDateFormat;
import java.util.Date;

public class runClientSendData {
    private Logger logger = LoggerFactory.getLogger(getClass());
    public static void runNettyClient(String alarmType,String alarmValue,String DevId)
    {
        try{
            final SocketClient c = SocketClient.getInstance();
            ChannelFuture cf = c.getChannelFuture();

            SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");//设置日期格式
            String Dtime = df.format(new Date());// new Date()为获取当前系统时间，也可使用当前时间戳

            JSONObject objClient = new JSONObject();
            objClient.put(Constant.CMD_ACTION,"uploadAlarmStream");
            objClient.put("AlarmType",alarmType);
            objClient.put("AlarmValue",alarmValue);
            objClient.put("Dtime",Dtime);
            objClient.put("DevType","01");
            objClient.put("Position","01");
            objClient.put("DevID",DevId);
            String objJsonStr = objClient.toJSONString();
            String msgstrH = StringUtils.toChineseHex(StringEscapeUtils.unescapeJava(objJsonStr));
            cf.channel().writeAndFlush(Unpooled.copiedBuffer(msgstrH.getBytes()));
//            cf.channel().writeAndFlush(Unpooled.copiedBuffer(msgstrH.getBytes()));
//            cf.channel().writeAndFlush(Unpooled.copiedBuffer(msgstrH.getBytes()));

            cf.channel().closeFuture().sync();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }

//{
//"action": "uploadAlarmStream", //主动上传，如果还要被动上传的话，这里区分
//“AlarmType”:”xxxxx”,
//"AlarmValue":"xxxxx",
//"Dtime":"xxxxxxx"
//"DevType":”xxxxxxx”,
//"Position":”xxxxxxx”,
//"DevID":”XXXXX”
//}

//    AlarmType:（4Byte）
//1.  温度越上限：1
//2. 温度越下限：2
//3. tBusiDevMonitorInfoEntity.getVariableDesc().indexOf("温度") >= 0越上限：3
//4. SF6越上限：4
//5. 烟雾 越上限：5
//6. 水位越上限：6
//7. 水泵、风机、空调动作：
//水泵开：7
//风机开：8
//空调开：9
//红外告警（达到温度告警门槛值）：10
//局放报警状态：11
//可见光告警状态：12
//
//AlarmValue:（1Byte）
//告警：2
//不告警：1
//
//Dtime:（14Byte  字符串格式）：上报时间
//年月日时分秒：
//
//Position（100Byte 字符串格式）：设备位置
//
//DevType（4Byte）：设备类型
//
//DevID（20Byte）：设备编号
}
